The primary objective of the present invention arose from the need for an inexpensive cursor control device which could be manipulated with the ease and fine control of a pen.
Cursor control devices are of two basic kinds:
(1) position detectors such as digitizers, graphics tablets and light pens. These devices typically require an energized referent field or surface which in the case of a light pen may be the video display itself. In most such systems the moving component is also energized; in a few, a passive stylus is employed to deform a referent field.
(2) relative-motion detectors, further divided into:
(a) fixed devices such as trackballs and joysticks. These devices sense the movement or analogous state of an active component (ball or stick) held within a fixed housing.
(b) moving devices, the most popular of which is the `mouse`. These devices sense their own movement against a passive referent field or surface which in the case of a mechanical mouse may be any frictional surface. Reduced to an extreme, the referent field could be simply the inertia of a massive, self-contained component.
Evaluated against the primary objective, position detectors already met all of the requirements except expense, but they were dropped from consideration because their expense appeared irreducibly bound to the information needed to determine position. Fixed, relative-motion detectors were rejected because none could be manipulated like a pen in an obvious way. (Still, the joystick holds promise as a fine-control device.)
Concentrating on the remaining alternative, the mouse, spawned a secondary objective: to reduce to nib-size that portion of the moving device which must directly address the referent field or surface.
Two versions of the mouse were considered:
(1) The typical mechanical mouse senses the rotation of two, orthogonally deployed wheels or the rotation of a ball translated through two wheels. Because of its low cost and because it requires no referent other than a frictional surface, the mechanical mouse has become the most popular of cursor control devices.
(2) The optical mouse is best represented by the electro-optical mouse invented by Steven T. Kirsch and disclosed in U.S. Pat. Nos. 4,364,035, 4,390,873 and 4,546,347. The optical mouse improves on the internal workings of the mechanical mouse by eliminating the moving parts, but does so at the expense of requiring a specific referent image. This not only adds a component but also precludes its use for tracing (as was pointed out by William W. Shores in his invention titled "Tracing Aid for Computer Graphics," U.S. Pat. No. 4,561,183).
In the course of the present invention, various attempts were made to shape the mechanical mouse as a pen; none was successful, and the solution to this problem is left for a future invention. The present invention is based solely on the optical mouse.
During the evolution of the optical mouse, a number of different logical schemes have been patented for determining relative motion against a referent image. In the most abstract view, all such schemes correlate the movement of a device over a referent surface to a change of state. This change of state begins as a change in the optical information sampled by the device. The optical signals are transduced to electronic signals; the electronic signals are then amplified, filtered, compared and otherwise logically processed to produce the electronic code which will drive a cursor in related movement over a video display.
An early example of the optical mouse employed a checkerboard pattern as a referent image and required a look-up table as means for mapping the change of state to the electronic code for driving a cursor. This was the "electronic mouse" disclosed by Kirsch in his earliest patent application U.S. Pat. No. 4,390,873, filed on May 18, 1981. Later versions of Kirsch's "electro-optical mouse" have employed a logic base on a grid composed of spaced lines of two separately detectable colors. This logical scheme represents a convergent evolution of the optical mouse and the mechanical mouse; both have come to employ optoelectronics and the logic of `quadrature` to detect incremental movement.
Quadrature is a simple algorithm for edge detection wherein two detectors approach a transition a quarter (90.degree.) out of step with each other. Comparing the change of one signal (`going on` or `going off`) against the state of the other (`on` or `off`) differentiates between motion forward or backward along a single axis. The following two examples illustrate the convergent evolution of the two kinds of mice toward this algorithm:
(1) In a popular embodiment of the mechanical mouse, a ball rolling over a surface spins two slotted wheels on orthogonal axes. Each spinning wheel cuts two light beams. The beams are offset relative the slots by just the amount needed to produce a 90.degree. phase difference between their signals, i.e., if one beam is at the edge of a slot, the other is in the center of a slot.
(2) In the later versions of Kirsch's electro-optical mouse, reflected light from a ruled grid produces an optical signal analogous to that produced by the spinning shutters. In place of the two spinning shutters, two colors of lines illuminated by two colors of light differentiate the orthogonal axes. (Actually, a single color of light may be employed so long as the grid presents three levels of edge contrast to the edge and state detectors.)
The advantage of quadrature over other algorithms is that it is so simple that no state tables are required; the detectors themselves carry the necessary state information.
While quadrature is the preferred algorithm, other logical means have been developed for which the present invention has application. One good example is the optical mouse described as a possible application of the "Imaging Array" disclosed by Richard F. Lyon in U.S. Pat. No. 4,521,773. The Imaging Array is a generalized device wherein optical information contained in a bitmap covering a large area is sampled by an array of sensors addressing a small area. This sample of optical information may go through intermediate processing depending on how the individual sensors interact (to inhibit, to excite, or to do nothing to one another). A transition table then translates the changing state of the intermediate array into the electronic code driving a cursor.